Add checking ISA DMA flag in cpu_loop. Also need to do bios_init manually
for now. With this change, floppy is functional.
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
Signed-off-by: ian.pratt@cl.cam.ac.uk
#endif
interrupt(vector);
}
+ /* we check DMA after interrupt check*/
+ while(BX_HRQ){
+ DEV_dma_raise_hlda();
+ }
if (send_event) {
int ret;
}
BX_DMA_THIS s[1].chan[0].used = 1; // cascade channel in use
BX_INFO(("channel 4 used by cascade"));
+ bios_init();
+}
+
+/* Remove it when guest fw ready*/
+ void
+bx_dma_c::bios_init(void){
+ BX_DMA_THIS s[1].mask[0] = 0; // unmask cascade channel
+ BX_DMA_THIS s[1].chan[0].mode.mode_type = 3; // cascade mode for channel 4
}
void
{
reset_controller(0);
reset_controller(1);
+ bios_init();
}
void
~bx_dma_c(void);
virtual void init(void);
+ virtual void bios_init(void);
virtual void reset(unsigned type);
virtual void raise_HLDA(void);
virtual void set_DRQ(unsigned channel, bx_bool val);